Crate image[−][src]
Overview
This crate provides native rust implementations of image encoding and decoding as well as some basic image manipulation functions. Additional documentation can currently also be found in the README.md file which is most easily viewed on github.
There are two core problems for which this library provides solutions: a unified interface for image encodings and simple generic buffers for their content. It’s possible to use either feature without the other. The focus is on a small and stable set of common operations that can be supplemented by other specialized crates. The library also prefers safe solutions with few dependencies.
High level API
Load images using io::Reader
:
use image::io::Reader as ImageReader; let img = ImageReader::open("myimage.png")?.decode()?; let img2 = ImageReader::new(Cursor::new(bytes)).decode()?;
And save them using save
or write_to
methods:
img.save("empty.jpg")?; let mut bytes: Vec<u8> = Vec::new(); img2.write_to(&mut bytes, image::ImageOutputFormat::Png)?;
With default features, the crate includes support for many common image formats.
Image buffers
The two main types for storing images:
ImageBuffer
which holds statically typed image contents.DynamicImage
which is an enum over the supported ImageBuffer formats and supports conversions between them.
As well as a few more specialized options:
GenericImage
trait for a mutable image buffer.GenericImageView
trait for read only references to a GenericImage.flat
module containing types for interoperability with generic channel matrices and foreign interfaces.
Low level encoding/decoding API
The ImageDecoder
and ImageDecoderExt
traits are implemented for many image file
formats. They decode image data by directly on raw byte slices. Given an ImageDecoder, you can
produce a DynamicImage via DynamicImage::from_decoder
.
ImageEncoder
provides the analogous functionality for encoding image data.
Re-exports
pub use crate::error::ImageError; |
pub use crate::error::ImageResult; |
pub use crate::flat::FlatSamples; |
Modules
bmp | Deprecated Decoding and Encoding of BMP Images |
buffer | Iterators and other auxiliary structure for the |
codecs | Encoding and decoding for various image file formats. |
dds | Deprecated Decoding of DDS images |
dxt | Deprecated Decoding of DXT (S3TC) compression |
error | Contains detailed error representation. |
farbfeld | Deprecated Decoding of farbfeld images |
flat | Image representations for ffi. |
gif | Deprecated Decoding of GIF Images |
hdr | Deprecated Decoding of Radiance HDR Images |
ico | Deprecated Decoding and Encoding of ICO files |
imageops | Image Processing Functions |
io | Input and output of images. |
jpeg | Deprecated Decoding and Encoding of JPEG Images |
math | Mathematical helper functions and types. |
png | Deprecated Decoding and Encoding of PNG Images |
pnm | Deprecated Decoding and Encoding of netpbm image formats (pbm, pgm, ppm and pam) |
tga | Deprecated Decoding and Encoding of TGA Images |
tiff | Deprecated Decoding and Encoding of TIFF Images |
webp | Deprecated Decoding of WebP Images |
Structs
Bgr | BGR colors |
Bgra | BGR colors + alpha channel |
Delay | The delay of a frame relative to the previous one. |
Frame | A single animation frame |
Frames | An implementation dependent iterator, reading the frames as requested |
ImageBuffer | Generic image buffer |
Luma | Grayscale colors |
LumaA | Grayscale colors + alpha channel |
Pixels | Immutable pixel iterator |
Progress | Represents the progress of an image operation. |
Rgb | RGB colors |
Rgba | RGB colors + alpha channel |
SubImage | A View into another image |
Enums
ColorType | An enumeration over supported color types and bit depths |
DynamicImage | A Dynamic Image |
ExtendedColorType | An enumeration of color types encountered in image formats. |
ImageFormat | An enumeration of supported image formats. Not all formats support both encoding and decoding. |
ImageOutputFormat | An enumeration of supported image formats for encoding. |
Traits
AnimationDecoder | AnimationDecoder trait |
EncodableLayout | Types which are safe to treat as an immutable byte slice in a pixel layout for image encoding. |
GenericImage | A trait for manipulating images. |
GenericImageView | Trait to inspect an image. |
ImageDecoder | The trait that all decoders implement |
ImageDecoderExt | Specialized image decoding not be supported by all formats |
ImageEncoder | The trait all encoders implement |
Pixel | A generalized pixel. |
Primitive | Primitive trait from old stdlib |
Functions
guess_format | Guess image format from memory block |
image_dimensions | Read the dimensions of the image located at the specified path. This is faster than fully loading the image and then getting its dimensions. |
load | Create a new image from a Reader |
load_from_memory | Create a new image from a byte slice |
load_from_memory_with_format | Create a new image from a byte slice |
open | Open the image located at the path specified. The image’s format is determined from the path’s file extension. |
save_buffer | Saves the supplied buffer to a file at the path specified. |
save_buffer_with_format | Saves the supplied buffer to a file at the path specified in the specified format. |
Type Definitions
GrayAlphaImage | Sendable grayscale + alpha channel image buffer |
GrayImage | Sendable grayscale image buffer |
RgbImage | Sendable Rgb image buffer |
RgbaImage | Sendable Rgb + alpha channel image buffer |